import { createRouter, createWebHashHistory } from 'vue-router'
const whiteList = ['/login']
const routes = [
  {
    path: '/',
    redirect: '/login'
  },
  {
    path: '/login',
    name: 'login',
    component: () => import('@renderer/views/login/index.vue')
  },
  {
    path: '/home',
    name: 'home',
    component: () => import('@renderer/views/home/index.vue')
  }
]

const router = createRouter({
  history: createWebHashHistory(),
  routes
})

router.beforeEach(async (to, from, next) => {
  // 获取用户信息
  const userInfo = await window.ipcRenderer.invoke('storeGet', 'userInfo')
  // 判断该用户是否登录
  if (userInfo) {
    if (to.path === '/login') {
      // 如果已经登录，并准备进入 Login 页面，则重定向到主页
      next({ path: '/home' })
    } else {
      // 检查用户是否已获得其权限角色
      next()
    }
  } else {
    // 如果没有 Token
    if (whiteList.indexOf(to.path) !== -1) {
      // 如果在免登录的白名单中，则直接进入
      next()
    } else {
      // 其他没有访问权限的页面将被重定向到登录页面
      next('/login')
    }
  }
})

export default router
